
#include "head.h"
void log_func(client_status *user, sendMsg *msg, int num, const char *funname, const char *name){
    printf("向日志写入了东西\n");
    printf("用户名:%s 命令的mode码:%d ",user->user_name,msg->mode);
    printf("操作所在文件%s 所在函数%s log行号：%d \n", name, funname, num);


    char log_path[4096];
    char file_name[11]="my_log.log";

    getcwd(log_path,sizeof(log_path));
    //printf("日志文件所在路径%s\n",log_path);
    strcat(log_path,"/");
    strcat(log_path,file_name);
    printf("log_path:%s\n",log_path);

    int fd_file=open(log_path,O_RDWR|O_CREAT|O_APPEND,0777);
    printf("fd_file:%d\n",fd_file);
    ERROR_CHECK(fd_file,-1,"open_log_file");


    // 保存当前标准输出文件描述符
    int stdout_backup = dup(STDOUT_FILENO);
    //将标准输出重定向到文件
    dup2(fd_file,STDOUT_FILENO);
    printf("用户名:%s 命令的mode码:%d ",user->user_name,msg->mode);
    printf("操作所在文件%s 所在函数%s log行号：%d \n", name, funname, num);
    // 将标准输出恢复到原来的文件描述符
    dup2(stdout_backup, STDOUT_FILENO);

    //func(__LINE__, __FUNCTION__, __FILE__);
    sleep(1);
    close(fd_file);
}
/*
int main(int argc,char*argv[])
{
    //func(__LINE__, __FUNCTION__, __FILE__);

    func(__LINE__, __FUNCTION__, __FILE__);

    return 0;
}
*/
// __LINE__: 当前源代码行号
// __FUNCTION__:当前函数名称的字符串
// __FILE__:源文件名的字符串
